package com.example.administrator.myapplication.data.source;

import com.example.administrator.myapplication.data.Task;

import java.util.List;

/**
 * Created by Administrator on 2017/11/27.
 */

public interface TaskDataSource {


    /**
     * 获取全部数据回调
     */
    interface LoadTasksCallback{

        void onTasksLoaded(List<Task> tasks);

        void onDataNotAvaliable();
    }

    /**
     * 获取搜索到的数据回调
     */
    interface LoadSerachedTasksCallback{

        void onTasksLoaded(List<Task> tasks);

        void onDataNotAvaliable();
    }

    /**
     * 获取单个数据回调
     */
    interface GetTaskCallback{

        void onTaskLoaded(Task task);

        void onDataNotAvaliable();
    }

    /**
     * 添加或修改数据回调
     */
    interface UpdateCallBack{

        void onSuccess();

        void onfailure();
    }

    /**
     * 获取全部数据
     */
    void getTasks(LoadTasksCallback callback);

    /**
     * 获取符合搜索的数据
     */
    void getSearchedTasks(String selectionContent,LoadSerachedTasksCallback callback);

    /**
     * 获取制定id的数据
     * @param id
     * @param callback
     */
    void getTask(String id,GetTaskCallback callback);

    /**
     * 保存一条数据
     * @param task
     */
    void saveTask(Task task);

    /**
     * 更新一条数据
     * @param task
     */
    void updateTask(Task task);










}
